package vn.fpt.fsoft.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * @author MinhNC7
 * 
 */
@Entity
@Table(name = "PremiseFactility")
public class PremiseFactility {
	private int factilityID;
	private String type;
	private String description;
	private String roomCapacity;
	private float roomSize;
	private String roomConnect;
	private String connectType;
	private String wirelessAccInfo;
	private int leadContact;
	private int roomHost;
	private boolean equipAvailable;
	private String roomEquip;
	private PreJCPOffices preJCPOffices;
	private String status;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public int getFactilityID() {
		return factilityID;
	}

	public void setFactilityID(int factilityID) {
		this.factilityID = factilityID;
	}

	@Column(name = "FacilityType", length = 20, nullable = true)
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	@Column(name = "Description", length = 100, nullable = true)
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	@Column(name = "RoomCapacity", length = 20, nullable = true)
	public String getRoomCapacity() {
		return roomCapacity;
	}

	public void setRoomCapacity(String roomCapacity) {
		this.roomCapacity = roomCapacity;
	}

	@Column(name = "RoomSize", precision = 6)
	public float getRoomSize() {
		return roomSize;
	}

	public void setRoomSize(float roomSize) {
		this.roomSize = roomSize;
	}

	@Column(name = "RoomConnectivity", length = 20, nullable = true)
	public String getRoomConnect() {
		return roomConnect;
	}

	public void setRoomConnect(String roomConnect) {
		this.roomConnect = roomConnect;
	}

	@Column(name = "ConnectivityType", length = 50, nullable = true)
	public String getConnectType() {
		return connectType;
	}

	public void setConnectType(String connectType) {
		this.connectType = connectType;
	}

	@Column(name = "WirelessAccessInfo", length = 20, nullable = true)
	public String getWirelessAccInfo() {
		return wirelessAccInfo;
	}

	public void setWirelessAccInfo(String wirelessAccInfo) {
		this.wirelessAccInfo = wirelessAccInfo;
	}
	@Column(name = "LeadContact")
	public int getLeadContact() {
		return leadContact;
	}

	public void setLeadContact(int leadContact) {
		this.leadContact = leadContact;
	}
	@Column (name = "RoomHost")
	public int getRoomHost() {
		return roomHost;
	}

	public void setRoomHost(int roomHost) {
		this.roomHost = roomHost;
	}
	@Column(name = "EquipAvailable")
	public boolean isEquipAvailable() {
		return equipAvailable;
	}

	public void setEquipAvailable(boolean equipAvailable) {
		this.equipAvailable = equipAvailable;
	}
	@Column(name = "RoomEquipNotes", length = 200, nullable = true)
	public String getRoomEquip() {
		return roomEquip;
	}

	public void setRoomEquip(String roomEquip) {
		this.roomEquip = roomEquip;
	}
	
	@ManyToOne(fetch =FetchType.LAZY)
	@JoinColumn(name="PremiseDetailID", nullable = true)
	public PreJCPOffices getPreJCPOffices() {
		return preJCPOffices;
	}

	public void setPreJCPOffices(PreJCPOffices preJCPOffices) {
		this.preJCPOffices = preJCPOffices;
	}
	@Column(name = "Status")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	

	public PremiseFactility(int factilityID, String type, String description,
			String roomCapacity, float roomSize, String roomConnect,
			String connectType, String wirelessAccInfo, int leadContact,
			int roomHost, boolean equipAvailable, String roomEquip,
			PreJCPOffices preJCPOffices, String status) {
		super();
		this.factilityID = factilityID;
		this.type = type;
		this.description = description;
		this.roomCapacity = roomCapacity;
		this.roomSize = roomSize;
		this.roomConnect = roomConnect;
		this.connectType = connectType;
		this.wirelessAccInfo = wirelessAccInfo;
		this.leadContact = leadContact;
		this.roomHost = roomHost;
		this.equipAvailable = equipAvailable;
		this.roomEquip = roomEquip;
		this.preJCPOffices = preJCPOffices;
		this.status = status;
	}

	public PremiseFactility() {
	};

}
